package partThree;

import java.util.*;
/* 本类用于测试map接口*/
public class TestMap {
    public static void main(String[] args) {
        //1.创建MAP对象
        Map<Integer,String> map = new HashMap();
        map.put(9527,"白骨精");
        map.put(9528,"黑熊精");
        map.put(9529,"鲤鱼精");
        map.put(9530,"黄毛精");
        map.put(9531,"黑熊精");
        map.put(9527,"女儿国国王");
        System.out.println(map);
        /*
        1.map中存放的都是无序的数据，
        2.map中的value可以重复，比如我们放入了俩个黑熊精
        3.map中的key不能重复，如果重复，新的会将旧的覆盖掉
        */

        //2.进行方法测试
        //map.clear();//清空集合
        System.out.println(map.hashCode());//474360095 获取集合的哈希码
        System.out.println(map.equals("黄毛精"));//false  判断“黄毛精”是否与集合对象相等
        System.out.println(map.isEmpty());//false  判断集合是否为空
        System.out.println(map.size());//5  获取集合中键值对的个数

        System.out.println(map.containsKey(9527));//true 判断当前map集合中是否包含指定的Key键
        System.out.println(map.containsValue("黑熊精"));//true 判断当前map集合中是否包含指定的Value

        System.out.println(map.get(9527));//女儿国国王 根据key值获取到对应的value值
        System.out.println(map.remove(9529)); //鲤鱼精 根据此key值删除对应指定的键值对，key值（键）与Value（值）都删了
        System.out.println(map.containsKey(9529)); //false
        System.out.println(map.containsValue("鲤鱼精")); //false

        //将map集合中的所有value取出，放入Collection集合中
        //Collection<Type>中Type的类型，取决于map中value的类型
        Collection<String> values = map.values();
        System.out.println(values);//[女儿国国王, 黑熊精, 黄毛怪, 黑熊精]

        //将map集合中所有value存入Set中，并返回Set集合
        Set<Integer> keySet = map.keySet();
        System.out.println(keySet);//[9527, 9528, 9530, 9531]

        //将map集合中所有key和value存入Set中，并返回Set集合
        Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
        System.out.println(entrySet);//[9527=女儿国国王, 9528=黑熊精, 9530=黄毛精, 9531=黑熊精]


    }
}